"""
for循环的语法
for val in sequence:
	Body of for
"""
#程序查找列表中存储的所有数字的总和
#数字清单

numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11]

# 用于存储总和的变量
sum = 0

# 遍历列表
for val in numbers:
    sum = sum+val

print("总和是", sum)

"""range()函数"""
#我们可以使用range()函数生成数字序列。range(10)会产生0到9之间的数字（10个数字）。
#我们还可以将开始，停止和步长定义为range(start, stop,step_size)。如果未提供，则step_size默认为1。
#range对象在某种意义上是“惰性的”，因为它不会在我们创建它时生成它“包含”的所有数字。但是它不是迭代器，它支持in、len和getitem操作。
#此函数不将所有值存储在内存中;这将是低效的。因此，它会记住开始、停止、步长，并在运行中生成下一个数字。
#要强制此函数输出所有项目，可以使用函数list()。
#以下示例将演示了这一点。

print(range(10))
print(list(range(10)))
print(list(range(2, 8)))
print(list(range(2, 20, 3)))

#我们可以在for循环中使用 range() 函数来迭代数字序列。它可以与len()函数结合使用索引来遍历序列。这是一个示例。
# 使用索引遍历列表的程序

genre = ['pop', 'rock', 'jazz']

# 使用索引遍历列表
for i in range(len(genre)):
    print("I like", genre[i])

"""带有else的循环"""

#for循环也可以有一个可选的else块。
#如果for循环中使用的序列中的项耗尽，则执行else部分。
#break关键字可用于停止for循环。在这种情况下，else部分将被忽略。
#因此，如果没有发生中断，则运行for循环的else部分。
#这是一个示例来说明这一点。
digits = [0, 1, 5]

for i in digits:
    print(i)
else:
    print("没有剩余的项目.")

#在这里，for循环将打印列表中的项目，直到循环用尽。当for循环用尽时，它执行else代码块并输出 "没有剩余的项目"。
#for...else语句可与break关键字一起使用，以便仅在未执行break关键字时运行else块。让我们举个示例：

# 显示记录中学生成绩的程序
student_name = 'Soyuj'

marks = {'James': 90, 'Jules': 55, 'Arthur': 77}

for student in marks:
    if student == student_name:
        print(marks[student])
        break
else:
    print('没有找到该名称的条目.')